證券簡稱:天融信 證券代碼:002212
    全天候7x24小時服務(wù): 400-777-0777

    人工智能安全|AI安全應(yīng)用|基于圖像分類的惡意代碼同源分析

    惡意代碼(Malicious/Unwanted Code)泛指所有會對網(wǎng)絡(luò)或系統(tǒng)產(chǎn)生威脅或潛在威脅的計算機代碼,造成目標系統(tǒng)信息泄露、資源濫用、破壞系統(tǒng)完整性及可用性、違背目標系統(tǒng)安全策略等危害。

    人工智能安全|AI安全應(yīng)用|基于圖像分類的惡意代碼同源分析

    發(fā)布時間:2021-10-15
    瀏覽次數(shù):3247
    分享:

    01 背景

    惡意代碼(Malicious/Unwanted Code)泛指所有會對網(wǎng)絡(luò)或系統(tǒng)產(chǎn)生威脅或潛在威脅的計算機代碼,造成目標系統(tǒng)信息泄露、資源濫用、破壞系統(tǒng)完整性及可用性、違背目標系統(tǒng)安全策略等危害。

    近年來,雖然惡意代碼爆發(fā)式增長,但安全研究人員發(fā)現(xiàn),許多新型惡意代碼都是已有惡意代碼的變種,這些變種很多是黑客利用變形、加殼、多態(tài)、代碼擾亂等技術(shù)制造的,可以躲避黑白名單、特征碼匹配等傳統(tǒng)的檢測技術(shù)[1][10]。實際上,這些變種現(xiàn)象反映了惡意代碼之間的同源關(guān)系。例如,2017年出現(xiàn)的WannaCry實際上與已知病毒W(wǎng)cy具有同源關(guān)系,但該病毒繞過了各類檢測工具,造成了嚴重的經(jīng)濟損失。因此,發(fā)現(xiàn)同源關(guān)系逐漸成為網(wǎng)絡(luò)安全領(lǐng)域關(guān)注焦點。

    惡意代碼同源分析(Homology Analysis)是指通過惡意代碼內(nèi)外部特性以及生成和傳播的規(guī)律,分析惡意代碼之間衍生的關(guān)聯(lián)性。同源關(guān)系有很多種,包括:家族同源、開發(fā)者同源、類型同源或者攻擊源同源等。本文主要關(guān)注惡意代碼類型同源分析問題。基于惡意代碼類型同源分析,可以幫助檢測、預(yù)警惡意代碼,制定應(yīng)急響應(yīng)方案以及預(yù)測事件發(fā)展趨勢。

    本文首先介紹了相關(guān)基礎(chǔ)知識,簡單回顧了同源分析分析技術(shù)現(xiàn)狀,然后介紹了基于圖像分類的同源分析技術(shù)方案設(shè)計,最后通過具體實驗驗證了基于圖像分類的同源分析技術(shù)的有效性。

    02 基礎(chǔ)知識

    2.1 類型同源

    惡意代碼類型多種多樣,包括計算機病毒、蠕蟲、木馬程序、后門程序、邏輯炸彈等。每一類惡意代碼往往會在以下三個方面存在相似性。

    (1)關(guān)鍵代碼段

    指為了實現(xiàn)某一惡意功能,同源惡意代碼在關(guān)鍵代碼片段(如DLL注入、RPC服務(wù))具有相似性,這些相似代碼片段也被稱為基因碼。

    (2)系統(tǒng)函數(shù)調(diào)用

    惡意行為的操作通常依賴對操作系統(tǒng)函數(shù)的調(diào)用,同源惡意代碼調(diào)用的函數(shù)名稱、頻次、順序等可能存在類似。

    (3)功能行為

    每一類惡意代碼都有針對性的破壞行為,如勒索軟件會讀寫用戶數(shù)據(jù)、遠程控制木馬會查看屏幕或攝像頭,功能行為的相似性反映在文件、進程、網(wǎng)絡(luò)及注冊表等方面。

    2.2 圖像化

    圖像化即惡意代碼字節(jié)流內(nèi)容的可視化展示,而流內(nèi)容包含了一個組裝惡意代碼完整的信息,例如PE格式惡意代碼的頭部、數(shù)據(jù)節(jié)、代碼節(jié)、尾部等。

    黑客經(jīng)常使用開源的惡意代碼片段,經(jīng)過進一步開發(fā)、包裝之后,形成惡意代碼變種;相同功能或者同一家族的惡意代碼,也會共享代碼片段。因此,共享片段表現(xiàn)為相似的的流內(nèi)容,進而映射為圖像中相似的紋理。

    圖1,2展示某些流氓軟件(Application)兩個家族InstallMonster和Hacktool圖像化結(jié)果。可以看到InstallMonster和Hacktool類的示例樣本即便來自不同的家族,紋理上卻具有明顯相似性。

    圖1. Application-InstallMonster

    圖2. Application-Hacktool

    3 現(xiàn)狀分析

    與惡意代碼檢測技術(shù)相同,同源分析所采用的特征也分為靜態(tài)特征和動態(tài)特征。靜態(tài)特征包括:惡意代碼的組裝結(jié)構(gòu)特征、API序列特征、代碼語義、二進制內(nèi)容特征等[1]。動態(tài)特征通常為控制流程圖、讀取及修改的相關(guān)資源對象特征、API動態(tài)調(diào)用。獲取特征之后,可以采用關(guān)聯(lián)分析、機器學習分類以及圖分析等方法完成溯源。

    關(guān)聯(lián)分析即計算惡意代碼特征的相似度,例如Jaccard系數(shù)[14,15]、海明距離、余弦距離等,根據(jù)相似度判斷惡意代碼之間是否存在關(guān)聯(lián)。基于相似度分析,以惡意代碼為節(jié)點、相似度為邊,可以構(gòu)建惡意代碼關(guān)系網(wǎng)絡(luò),主要用于族群可視化,進一步溯源、挖掘大量離散惡意代碼之間的關(guān)聯(lián)[18]。SVM、XGBoost[14]、DBScan[10,15]、模糊哈希[14]等常見的分類算法,都在惡意代碼同源分析中有相應(yīng)的研究與應(yīng)用。

    圖分析作用于惡意代碼的控制流程圖,提取出入度(Out/In degree)、中間中心性(Betweenness centrality)、聚集系數(shù)(Clustering coefficient)等圖結(jié)構(gòu)度量[16],通過計算這些度量的相似性,判斷惡意代碼是否存在關(guān)聯(lián)。利用圖分析還可以在族群中挖掘相似子圖形成族群基因,通過基因?qū)Ρ扰袛鄲阂獯a是否同源[12]。趙等人運用了圖卷積網(wǎng)絡(luò)(Graph Convolutional Network,GCN)技術(shù),對惡意代碼的API調(diào)用圖進行分類,從而分析同源性[17]。

    2011年,Nataraj等人提出將惡意代碼的流內(nèi)容轉(zhuǎn)換成灰度圖像,然后提取GIST、局部空間平均值等特征,結(jié)合KNN算法對惡意代碼進行分類[3]。隨后,出現(xiàn)了一些研究延續(xù)該思路,比如將字節(jié)熵[4]、API調(diào)用[5]、opcode哈希[7]等轉(zhuǎn)換為圖像,卷積神經(jīng)網(wǎng)絡(luò)(Conventional Neural Network,CNN)[7]、長短期記憶(Long-short Term Memory,LSTM)網(wǎng)絡(luò)[8,9]等深度學習方法相繼被應(yīng)用于惡意代碼同源分析。

    采用圖像分類技術(shù)的同源分析方法,不要求分析人員具備逆向工程專業(yè)知識,而且無需人工提取特征,因此應(yīng)用起來比較靈活。得益于計算機視覺領(lǐng)域的快速發(fā)展,這種方法也能夠取得較高的準確性。以下重點介紹該類技術(shù)。

    4 方案設(shè)計

    基于圖像分類的同源分析方案中,典型的實現(xiàn)技術(shù)就是基于CNN的惡意代碼同源分析技術(shù)方案,主要包括以下部分構(gòu)成:

    (1)數(shù)據(jù)集構(gòu)建:確定惡意代碼的類別劃分方式,收集樣本并標注類別,作為訓(xùn)練數(shù)據(jù)。本文以類型作為類別劃分方式。

    (2)圖像化處理:將訓(xùn)練樣本轉(zhuǎn)化為圖像,作為CNN網(wǎng)絡(luò)的輸入。

    (3)CNN網(wǎng)絡(luò)構(gòu)建:構(gòu)建出CNN神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)(如VGGNet、GoogleNet、ResNet等)。

    (4)模型訓(xùn)練:將訓(xùn)練數(shù)據(jù)輸入CNN網(wǎng)絡(luò)進行訓(xùn)練,得到分類模型。

    (5)模型應(yīng)用:將待測樣本圖像化,輸入分類模型,根據(jù)輸出類別判定所屬類別。應(yīng)用流程如圖3所示:

    圖3. 基于CNN圖像分類的惡意代碼同源分析流程

    5 實驗分析

    本實驗中收集了7種類型的惡意代碼樣本,具體見表1。

    表1. 實驗數(shù)據(jù)集

    數(shù)據(jù)集按照比例4:1劃分為訓(xùn)練集和測試集。基于構(gòu)建CNN網(wǎng)絡(luò)結(jié)構(gòu),經(jīng)過200次迭代訓(xùn)練,模型損失收斂至0.0088,訓(xùn)練準確率達到0.9957。圖4展示模型的訓(xùn)練過程。

    圖4. 訓(xùn)練過程

    表2列出了模型在測試集上的各項測試指標,總體準確率為0.93。

    圖5為測試的混淆矩陣。在實驗的7個類別中,Trojan作為較復(fù)雜的一種惡意代碼類型,測試準確性最低。

    表2. 測試性能

    圖5. 混淆矩陣

    6 總結(jié)

    惡意代碼同源分析,一方面可追蹤定位攻擊來源或攻擊者,遏制APT攻擊,對黑客產(chǎn)生震懾打擊作用;另一方面,惡意軟件檢測技術(shù)存在疏漏,同源分析可協(xié)助檢測、防范惡意軟件。本文通過分析及驗證,認為基于圖像分類的惡意代碼同源分析具備可行性。但惡意代碼的類型之間錯綜復(fù)雜,沒有明確的劃分界限,也是限制分類準確性的原因之一。家族顯然是比類型更加精確的一種同源劃分方式。然而,有些家族樣本數(shù)量龐大,有些家族僅有少量可追溯的樣本,若以家族劃分類別,則需要解決樣本不平衡問題。通過初步判斷,如果增加類別劃分的細粒度,分類準確率會得到進一步提升,當然這些問題有待進一步探索。

    參考文獻

    [1]褚乾峰, 朱信宇, 劉功申. 惡意代碼同源判定技術(shù)綜述[J]. 通信技術(shù), 2017, 50(007):1484-1492.

    [2]Goldberg L, Goldberg P, Phillips C, et al. Constructing Computer Virus Phylogenies[J]. Journal of

    Algorithms,1998,26(01):188-208.

    [3]Nataraj L, Karthikeyan S, Jacob G, et al. Malware images: visualization and automatic classification[C]. IEEE Symposium on Visualization for Cyber Security, Pittsburg, PA, USA, ACM. 2011.

    [4]Han K S , Lim J H , Kang B , et al. Malware analysis using visualized images and entropy graphs[J]. International Journal of Information Security, 2015, 14(1):1-14.

    [5]Kolosnjaji B , Zarras A , Webster G , et al. Deep Learning for Classification of Malware System Call Sequences[C]// Australasian Joint Conference on Artificial Intelligence. Springer International Publishing, 2016.

    [6]Ni S , Qian Q , Zhang R . Malware identification using visualization images and deep learning[J]. Computers & Security, 2018, 77(AUG.):871-885.

    [7]Raff E , Barker J , Sylvester J , et al. Malware Detection by Eating a Whole EXE. 2017.

    [8]Quan, Boydell, Oisin, et al. Deep learning at the shallow end: Malware classification for non-domain experts[J]. Digital investigation: The internatnional journal of digital forensics & incident response, 2018.

    [9]Venkatraman S , Alazab M , Vinayakumar R . A hybrid deep learning image-based analysis for effective malware detection[J]. Information Security Technical Report, 2019, 47(Aug.):377-389.

    [10]錢雨村,彭國軍,王瀅等.惡意代碼同源性分析及家族聚類. 計算機工程與應(yīng)用,2015,56(18):76-81.

    [11]Park L, Yu J, Kang H K, et al. Birds of a Feature: Intrafamily clustering for version identification of packed malware[J]. IEEE systems journal, 2020,14(3):4545-4556.

    [12] Zhao B L, Shan Z, Liu F D, et al. Malware homology identification based on a gene perspective[J]. 信息與電子工程前沿:英文版, 2019(6):801-815.

    [13]Li Y, Sundaramurthy S C, Bards A G, et al. Experimental study of fuzzy hashing in malware clustering analysis[C]. Usenix, Washington DC, USA, 2015: 1-8.

    [14]Ahmadi M , Giacinto G , Ulyanov D , et al. Novel feature extraction, selection and fusion for effective malware family classification[DB]. 2015.

    [15]Kinable J,Kostakis O.Malware Classification based on Call Graph Clustering[J].Journal of Computer Virology and Hacking Techniques,2011,7(04):233-245.

    [16]Jang J W , Woo J , Mohaisen A , et al. Mal-Netminer: Malware Classification Approach Based on Social Network Analysis of System Call Graph[J]. Mathematical Problems in Engineering,2015,(2015-10-1), 2015, 2015(PT.18):731-734.

    [17]趙炳麟, 孟曦, 韓金,等. 基于圖結(jié)構(gòu)的惡意代碼同源性分析[J]. 通信學報, 2017, v.38;No.365(S2):86-93.

    [18]Sanders H, Saxe J. Malware data science: Attack detection and attribution[M]. No Starch Press, 2018.

    [19]Ronen R , Radu M , Feuerstein C , et al. Microsoft Malware Classification Challenge[DB]. 2018. https://arxiv.org/pdf/1802.10135.pdf.

    版權(quán)聲明

    轉(zhuǎn)載請務(wù)必注明出處。

    版權(quán)所有,違者必究。

    關(guān)鍵詞標簽:
    天融信 人工智能安全 AI安全應(yīng)用 惡意代碼同源分析
    客戶服務(wù)熱線

    400-777-0777
    7*24小時服務(wù)

    聯(lián)系郵箱

    servicing@topsec.com.cn

    掃碼關(guān)注